﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using LuaFramework;
using LuaInterface;

namespace LuaFramework {
	/// <summary>
	/// 用于渲染
	/// </summary>
	public class LuaRenderComponent : LuaComponent {

		void OnBecameVisible()
		{
			if (!string.IsNullOrEmpty(_name))
			{
				if (!LuaManager.IsInited || _table==null) return;

				LuaFunction func = _table.GetLuaFunction("OnBecameVisible");
				if (func != null)
				{
					func.Call(_table);
					func.Dispose();
					func = null;
				}
			}
		}

		void OnBecameInvisible()
		{
			if (!string.IsNullOrEmpty(_name))
			{
				if (!LuaManager.IsInited || _table==null) return;

				LuaFunction func = _table.GetLuaFunction("OnBecameInvisible");
				if (func != null)
				{
					func.Call(_table);
					func.Dispose();
					func = null;
				}
			}
		}

//		void OnPostRender(){
//			if (!string.IsNullOrEmpty(_name))
//			{
//				if (!LuaManager.IsInited || _table==null) return;
//
//				LuaFunction func = _table.GetLuaFunction("OnPostRender");
//				if (func != null)
//				{
//					func.Call(_table);
//					func.Dispose();
//					func = null;
//				}
//			}
//		}
//
//		void OnPreRender(){
//			if (!string.IsNullOrEmpty(_name))
//			{
//				if (!LuaManager.IsInited || _table==null) return;
//
//				LuaFunction func = _table.GetLuaFunction("OnPreRender");
//				if (func != null)
//				{
//					func.Call(_table);
//					func.Dispose();
//					func = null;
//				}
//			}
//		}
//
//		void OnPreCull(){
//			if (!string.IsNullOrEmpty(_name))
//			{
//				if (!LuaManager.IsInited || _table==null) return;
//
//				LuaFunction func = _table.GetLuaFunction("OnPreCull");
//				if (func != null)
//				{
//					func.Call(_table);
//					func.Dispose();
//					func = null;
//				}
//			}
//		}

		void OnRenderImage(RenderTexture src, RenderTexture dest)
		{
			if (!string.IsNullOrEmpty(_name))
			{
				if (!LuaManager.IsInited || _table==null) return;

				LuaFunction func = _table.GetLuaFunction("OnRenderImage");
				if (func != null)
				{
					func.Call(_table,src,dest);
					func.Dispose();
					func = null;
				}
			}
		}
    }
}